/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

import entidades.Miembro;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Snailin
 */
public class ManejadorDeMiembro implements Manejador {
    private Conexion conexion=null;
    private static ManejadorDeMiembro instancia=null;
    private ResultSet rs=null;
    private PreparedStatement stmt=null;
    private ArrayList<Miembro>miembros=null;

    public static ManejadorDeMiembro getInstancia() {
        if(instancia==null){
            instancia=new ManejadorDeMiembro();
        }
        return instancia;
    }

    private ManejadorDeMiembro(){
        conexion=Conexion.getInstancia();
    }

    public ArrayList<Miembro>getMiembros(){
        miembros=new ArrayList<Miembro>();
        String sql="SELECT * FROM miembro";
        stmt=conexion.hacerEnunciado(sql);
        rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                Miembro miembro=new Miembro(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),rs.getInt(5));
                miembros.add(miembro);
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeMiembro.class.getName()).log(Level.SEVERE, null, ex);
        }
        return  miembros;
    }

    public int agregar(Entidad miembro) {
        int fila=0;
        String sql="INSERT INTO miembro (id_mienbro, cargos, responsabilidad, descripcion, cantidad_miembro) VALUES (0, ?, ?, ?, ?)";
        try {
            stmt.setString(1, ((Miembro) (miembro)).getCargos());
            stmt.setString(2, ((Miembro) (miembro)).getResponsabilidad());
            stmt.setString(3, ((Miembro) (miembro)).getDescripcion());
            stmt.setInt(4, ((Miembro) (miembro)).getCantidadMiembro());
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeMiembro.class.getName()).log(Level.SEVERE, null, ex);
        }
        stmt=conexion.hacerEnunciado(sql);


        return fila;
    }

    public int eliminar(int id) {
          int fila=0;
        String sql="DELETE FROM miembro WHERE id_mienbro = ? ";
        stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeMiembro.class.getName()).log(Level.SEVERE, null, ex);
        }

        return fila;
    }

    public int modificar(Entidad miembro, int id) {
             int fila=0;
             String sql="UPDATE miembro SET cargos = ? , responsabilidad = ? , descripcion = ? , cantidad_miembro = ? WHERE id_mienbro = ? ";
             stmt=conexion.hacerEnunciado(sql);
              try {
            stmt.setString(1, ((Miembro) (miembro)).getCargos());
            stmt.setString(2, ((Miembro) (miembro)).getResponsabilidad());
            stmt.setString(3, ((Miembro) (miembro)).getDescripcion());
            stmt.setInt(4, ((Miembro) (miembro)).getCantidadMiembro());
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeMiembro.class.getName()).log(Level.SEVERE, null, ex);
        }

             return fila;
    }




}
